﻿using iTextSharp.text;
using iTextSharp.text.pdf;
using System;
using System.IO;
using System.Text;
using Newtonsoft.Json;
using System.Linq;
using System.Collections.Generic;

namespace StudyDemo
{
    public class Program
    {
        public static void Main(string[] args)
        {
            for (int i = 0; i < 10; i++)
            {
                Console.WriteLine(i);
                if (i == 5)
                {
                    break;
                }
            }

            //ref List<string> lastVersionFileGroup = new List<string>();
            //ref List<string> curVersionFileGroup = new List<string>();
            //string lastVersionDir = @"E:\CODE\DONET\Company\20210525PQSS\bin\Release\PQSS V1.4 - 副本";
            //string curVersionDir = @"E:\CODE\DONET\Company\20210525PQSS\bin\Release\netcoreapp3.1 - 副本";
            //SearchFolderDstFile(lastVersionDir, ref lastVersionFileGroup);
            //SearchFolderDstFile(curVersionDir, ref curVersionFileGroup);
            //foreach (string filePath in curVersionFileGroup)
            //{
            //    // 如果不是dll文件，直接覆盖
            //    if (!Path.GetExtension(filePath).Equals(".dll"))
            //        CopyFile(filePath, Path.Combine(lastVersionDir, Path.GetFileName(filePath)), true);
            //    // 如果是dll文件，不进行覆盖
            //    else
            //        CopyFile(filePath, Path.Combine(lastVersionDir, Path.GetFileName(filePath)), false);
            //}
            Console.ReadLine();
        }

        /// <summary>
        /// 复制文件到指定目录
        /// </summary>
        /// <param name="srcFile">源文件全路径</param>
        /// <param name="destDir">目标文件全路径</param>
        /// <param name="isCover">同名文件是否覆盖</param>
        static void CopyFile(string srcFile, string destDir, bool isCover)
        {
            if (!File.Exists(srcFile))
            {
                return;
            }

            if (!File.Exists(destDir))
            {
                //创建后释放文件句柄
                File.Create(destDir).Dispose();
            }

            File.Copy(srcFile, destDir, isCover);

        }

        /// <summary>
        /// 递归检索指定文件夹下的指定文件路径
        /// </summary>
        /// <param name="sourceDir"></param>
        static void SearchFolderDstFile(string sourceDir, ref List<string> resultList)
        {
            try
            {
                DirectoryInfo thisDir = new DirectoryInfo(sourceDir);
                //判断所指的文件夹/文件是否存在  
                if (!thisDir.Exists)
                {
                    return;
                }

                DirectoryInfo dirInfo = thisDir as DirectoryInfo;
                FileSystemInfo[] files = dirInfo.GetFileSystemInfos();//获取文件夹下所有文件和文件夹  
                //对单个FileSystemInfo进行判断，如果是文件夹则进行递归操作  
                foreach (FileSystemInfo file in files)
                {
                    FileInfo fileInfo = file as FileInfo;

                    if (fileInfo != null)
                    {
                        //如果是文件，进行文件操作 
                        resultList.Add(Path.Combine(fileInfo.DirectoryName, fileInfo.Name));
                    }
                    else
                    {
                        //如果是文件夹，则进行递归调用 
                        SearchFolderDeleteFile(Path.Combine(sourceDir, file.ToString()), matchStr);
                    }
                }
            }
            catch (Exception ex)
            {
                Trace.WriteLine("获取文件夹下所有文件出现问题：" + ex.ToString());
            }
        }
    }
}
